home *** CD-ROM | disk | FTP | other *** search
/ The Epic Collection / Epic Collection, The (Epic Marketing)(1996).iso / business / pb009.dms / pb009.adf / Flexi-Base-ReadMe < prev    next >
Text File  |  1990-01-04  |  10KB  |  206 lines

  1. Instructions for the use of
  2.  
  3. FLEXI-BASE Current version 2.0 February 1990
  4.  
  5. Flexi-base is a small (30K) but powerful database program. It originally
  6. came about because I feel there is a real shortage of database programs for
  7. the Amiga, and those that are around are virtually falling over themselves
  8. with complexity of use. These also prove to be rather expensive !
  9.  
  10. Flexi-Base is simplicity to use. You are not tied to any particular layout
  11. of your data page or the order in which you enter the data thereon. To start
  12. using Flexi-Base you must set up a database specification, and the program
  13. Flexi-Config will help you to do just this. Click on it`s icon and a very
  14. simple CLI style window will open, you are asked the database`s name, how
  15. many fields in each record and what their names and lengths are. Then you 
  16. are asked to position each on the data page with the mouse. The field will
  17. appear at the bottom of the screen and by passing the pointer over this, it
  18. will "stick" and move with the pointer. When it`s in the right place, one 
  19. click will secure it there. Once this is done, the specification or
  20. configuration is stored and the program will exit. To use this new database,
  21. click on the Flexi-Base Icon and select the database`s name from the list
  22. of files given. The data page will be built up on screen and the first
  23. record (if there is one) will be displayed. If this is a new or empty
  24. database then you will automatically be placed in the Enter New Record mode, 
  25. the only exit from this page is by the ESC key which may be pressed at any 
  26. time while entering data. The "Yes, No, Cancel" dialogue boxes at the end 
  27. of these data entry pages do not necessarily require the use of the mouse, 
  28. you may click one of the three buttons but just stiking the initial key on 
  29. the keyboard, I think this is a nice short cut.
  30.  
  31. In normal use there are three menus. The Project, Record and Mailshot menus. 
  32.  
  33. The former controls the system functions of Flexi-Base and these are very 
  34. few,Different Database which requests the user to select a different 
  35. database to open (Never!), Kill a data base which kills the current database,
  36. and Quit which exits to the workbench, selecting cancel from the file
  37. requester also has the effect of quitting.
  38.  
  39. The record menu has Ten options available at present and all but one have
  40. keyboard short cuts. The first two have the effect of stepping forwards or
  41. backwards through the database one record at a time unless you have a search
  42. profile active and then it will be stepping forwards and backwards through 
  43. the records that match the search requirements.
  44.  
  45. The next two options move the display to either the top or bottom of the
  46. database and cancel the stepping through of only the records that match the
  47. search profile.
  48.  
  49. The search option allows you to enter a search profile with which to match 
  50. any records in the database and display only these. For a search to take 
  51. place you must fill out a data page but you are able to place one extra
  52. character before each field to inform Flexi-Base how the data you enter is
  53. to be matched with records on the database. There are eight special
  54. characters, these are:-
  55.  
  56.      =    Is the Same as ...
  57.      #    Is NOT the Same as ...
  58.  
  59.      ^    Does Contain ...    
  60.      -    Does NOT Contain ...
  61.  
  62.      >    Comes after ...                     }
  63.      <    Comes before ...                    } Not implimented
  64.                                               } on Version 1.01 
  65.      ?    Does Contain ... or is blank        }
  66.      /    Does NOT Contain ... or is blank    }
  67.  
  68. any other characters or blank is a wild card and no comparison will take 
  69. place, e.g. anything goes. So if a profile had the entry of 
  70.  
  71.      ^fred
  72.  
  73. all records where "fred" appeared anywhere within  that given field would
  74. be displayed (as long as no other field profile inhibited it). The 
  75. comparisons are not case sensitive and so there are no constraints placed on
  76. you to know what is already in your database. As an example, suppose a
  77. simple record was given the profile:-
  78.  
  79.  
  80.      Name:^smith                      Tel.:^01
  81.     
  82.   Address:-high street
  83.          :#camden
  84.          :=london    
  85.  
  86. This would instruct Flexi-Base to display all records where the name
  87. contains "smith" and the telephone number has an "01" in it but does not
  88. live in camden but does live in london. A record that would match this
  89. might be:-
  90.  
  91.     Name:John Smithson                Tel.:01 123 1234
  92.  
  93.   Address:Station Road
  94.          :Finchley
  95.          :London
  96.  
  97. And one that would not:-
  98.  
  99.      Name:Eric Smith                   Tel.:0895 12345
  100.  
  101.   Address:Station Road
  102.          :Hillingdon
  103.          :London
  104.  
  105. by virtue of the fact that the `phone No. does not contain "01" even though
  106. all the other criteria are satisfied.
  107.  
  108. Once a (group of) record(s) has been matched to the profile, the "Next
  109. record", Previous record" display options will only work on this group. To
  110. reset this to work on all records in the database, use the "First record", 
  111. "Last record" options from the menu.
  112.  
  113. The print option is exteremely simple at this stage, merely sending a stream
  114. to the printer as it is fetched from disc. No formatting takes place at the
  115. moment... (later Ver...  2.1?)
  116.  
  117. The modify option is very similar to entering new data. The current record
  118. on  display is stepped through and the fields may be altered at will. If the
  119. new data is ok the record will be stored, if not it may be re-entered or
  120. cancelled in which case the new data will be ignored and the old record will
  121. be re-displayed.
  122.  
  123. The Enter New Records option has been discussed at the beginning of this
  124. document.
  125.  
  126. About the Sort option see later...
  127.  
  128. Deleting records, the current record will be deleted and the display
  129. adjusted accordingly. If the only record in a database is deleted you will
  130. automatically be placed in the data entry mode afterwards. No checks are
  131. made on the records you are about to delete so be careful !
  132.  
  133. All records on Flexi-Base are completely RAM: based, that is the whole file
  134. is brought into ram and any operations occur there. This results in fairly
  135. fast activity but has several drawbacks. Firstly if you reset your Amiga or 
  136. the power fails, Any changes you have made will not be stored but the 
  137. program is fail safe in this respect, that is: no file is left open on disc
  138. so you will not get "File already open" alerts when it is obvious that it
  139. most definately is not but was not closed before the machine reset. The
  140. second aspect is that the file must be buffered before and after use. The
  141. file is copied in it`s entirety to RAM: and then copied back when finished
  142. with (if anything has changed). To prevent worrying periods of apparent
  143. inactivity, when any appreciable work is being done, there is a "Work done
  144. guage" which is displayed at the top of the screen. When buffering or 
  145. unbuffering a database or when re-organising the database after a delete, 
  146. the gauge is displayed and the level of work done will gradually step up to
  147. the 100% mark when Flexi-base will listen to you again.     
  148.  
  149. The sort routine is fairly good. I originally wrote it as a straight-
  150. forward bubble sort but with a database of 480 records each 179 bytes long
  151. it took over five hours (!!"?##?!) to sort. This was due mainly to two
  152. problems.
  153.  
  154.  1. Bubble sorts are inherently slow.
  155.  
  156.  2. All sorting was done using the filing system.
  157.  
  158. Bubble sorts (stop laughing at the back) are good for two reasons
  159.  
  160.  1. They always work !
  161.  
  162.  2. They are easy to program (double !)
  163.  
  164. I remember from college going into all sorts of different sort algorithms
  165. and remember a demonstration of a shell sort where data was arranged in
  166. absolute worst condition and it failed to sort correctly as well as being
  167. slower than a bubble sort. Moral: doctors should attend the sick and
  168. leave the.. (sh)ell alone... (don`t throw monitors, they break easily).
  169.  
  170. So I set about exploring new methods of sorting and came up with something
  171. I call a "Pre-ordered Bubble Sort" someone`s probably thought of it before
  172. and called it something completely different. The thinking goes... Bubble 
  173. sorts are great on small lumps of data. So to give Flexi-Base a head start,
  174. the database is scanned and all of a particular field starting with the same
  175. character are grouped together and then bubbled. Thus Flexi-Base will fragment
  176. the database and end up with, say, twenty small(ish) lumps of data, even
  177. the accursed AmigaDOS would be able to move small groups of records about
  178. with reasonable speed... And it worked!!, well, sort of. The problem comes in
  179. that if you have a big database with a lot of fields (the one you choose to
  180. sort by) all starting with the same character... you`re back to square one.
  181. Large lump of data + Bubble sort = go-and-watch-a-film-time. Another problem
  182. is that this lump of data, is not handled by AmigaDOS until it`s sorted that 
  183. means that because I only gave Flexi-Base a measely 50K to play with, as
  184. workspace, if you have a 100K database with half the records with a given 
  185. field all starting with the same letter/number/character, your going to have:
  186.  
  187.  1. A long wait
  188.  
  189.  2. A cross Amiga
  190.  
  191.  3. Probably a program failure (not GURU don`t panic)
  192.  
  193. Whichever, either you or your amiga will disappear up it`s own hole !
  194.  
  195. The way to avoid this is three fold:
  196. a. Try to avoid sorting on fields that bear a startling similarity
  197. b. Use several smaller databases ( <40K )
  198. c. Don`t use the sort option, Flexi-base will use however much is free in
  199.    RAM: maybe upto 8 or 9 Megs. On it`s own it`ll handle huge databases
  200.  
  201. Now your probably thinking "Jesus, all those limitations, this bloke must
  202. be a pratt!" well on the latter part your probably right but... I use 
  203. Flexi-base with a 340K database holding my work records and I don`t find
  204. any problem. It seems these limitations only rear their ugly heads if you
  205. go looking for em`. See what you think, if you don`t like it go and pay
  206. ninety quid for superbase, so there. (sniff)